﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Data;

namespace prjMateriais
{
    public partial class frmConsultarSaldoEstoque : Form
    {
        bool firstClick;
        int qtd;

        public frmConsultarSaldoEstoque()
        {
            InitializeComponent();
            firstClick = true;
            lblQtd.Text = "";
        }

        public void renomerColuna()
        {
            dtgrdvwGrid.Columns[0].HeaderText = "Lote";
            dtgrdvwGrid.Columns[1].HeaderText = "Deposito";
            dtgrdvwGrid.Columns[2].HeaderText = "Local";
            dtgrdvwGrid.Columns[3].HeaderText = "Quantidade";
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cboMaterial_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<string> tabelas = new List<string>();
            List<string> campos = new List<string>();

            tabelas.Add(ConstTabelas.LOTE);
            tabelas.Add(ConstTabelas.TIPOESTOQUE);
            tabelas.Add(ConstTabelas.DEPOSITO);
            tabelas.Add(ConstTabelas.LOCAL);

            campos.Add(ConstTabelas.LOTE + ".Nome");
            campos.Add(ConstTabelas.DEPOSITO + ".Nome");
            campos.Add(ConstTabelas.LOCAL + ".Nome");
            campos.Add(ConstTabelas.LOTE + ".Quantidade");

            string condicao = "(" + ConstTabelas.LOTE + ". CodigoMaterial = " + cboMaterial.SelectedValue + ")" +" and ("
                              + ConstTabelas.LOTE + ". CodigoTipoEstoque = " + ConstTabelas.TIPOESTOQUE + ".Codigo"
                              + " and " + ConstTabelas.TIPOESTOQUE + ".Deposito = " + ConstTabelas.DEPOSITO + ".Codigo"
                              + " and " + ConstTabelas.TIPOESTOQUE + ".Local = " + ConstTabelas.LOCAL + ".Codigo)" ;

            string sql = SqlCrud.getInstance.select(tabelas,campos,condicao);

            try
            {
                DataTable dados = Conexao.getInstance.executeQuery(sql);
                dtgrdvwGrid.DataSource = dados;
                renomerColuna();
                somarQuantidade();
            }
            catch { }
            
        }

        private void somarQuantidade()
        {
            qtd = 0;
            foreach (DataGridViewRow row in dtgrdvwGrid.Rows)
            {
                qtd += Convert.ToInt32(row.Cells[3].Value);
            }
            lblQtd.Text = qtd.ToString();
        }

        private void cboMaterial_Click(object sender, EventArgs e)
        {
            if (firstClick)
            {
                DataTable dados = Conexao.getInstance.executeQuery(SqlCrud.getInstance.selectAll(ConstTabelas.MATERIAL));
                cboMaterial.DataSource = dados;
                cboMaterial.DisplayMember = "Nome";
                cboMaterial.ValueMember = ConstTabelas.MATERIAL_PK;
                firstClick = false;
            }
        }
    }

   
}
